home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 43
/
Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso
/
-serious-
/
programming
/
c
/
pmm
/
make
/
pmm.cfg
< prev
next >
Wrap
Text File
|
1999-06-14
|
6KB
|
167 lines
; Allgemeines Compiler-Script
; ---------------------------
; Defines, Setting usw. für CPU-Typen: 1-6 = 68k, 7 & 8 PPC / WOS
; $C = CPU/FPU für Compiler ($D=defines)
; Nicht gesetzte Werte werden ignoriert.
; Hier als Beispiel: 6x m68k-Config / 68000 Standardvorgabe
; 2x PPC, einmal PowerUP und einmal WarpOS
;
; Anmerkung: Pmm und alle Pmm-Tools werden ORIGINAL mit diesem Script auf
; vbcc 0.6e übersetzt. Ebenso Gateway-5, die gateway.library
; und auch meine interne Link-Lib.
; <-- (; = Kommentar)
# <-- Für Make-Fan's (# = Kommentar)
;
; Leerzeilen sind zulässig!
; -------------------------
$C=-cpu=68000
$D=-DCPU="68000" -DFPU="N/A"
;
2%$C=-cpu=68010
2%$D=-DCPU="68010" -DFPU="N/A"
;
3%$C=-cpu=68020 -fpu=68881
3%$D=-DCPU="68020" -DFPU="68881"
;
4%$C=-cpu=68030 -fpu=68882
4%$D=-DCPU="68030" -DFPU="68882"
;
5%$C=-cpu=68040 -fpu=68040
5%$D=-DCPU="68040" -DFPU="68040"
;
6%$C=-cpu=68060 -fpu=68060
6%$D=-DCPU="68060" -DFPU="68060"
;
7%$C=-cpu=ppc
7%$D=-DCPU="PPC" -DFPU="PowerUP"
;
8%$C=-cpu=wos
8%$D=-DCPU="PPC" -DFPU="WarpOS"
$o=T:LinkerObjListe
;
; Zu 1%, 2% usw. siehe DOKU!
;
;
; Vorgabewerte, wenn für das Feld nichts gesetzt ist:
; ------------- VORSICHT! Optimizer auf 3 ist gefährlich (BETA) !!!
; Nach meiner Erfahrung läuft der Optimizer ab V0.6e
; Bei der Meldung: ">>> VAR <name> is used bevor defined"
; sofort auf -O=1 gehen. Sonst ist ein Absturz im Programm
; garantiert! Unter mindestens 16 MB freiem Speicher ist das auch
; nicht zu empfehlen! Anm. der Autorin
;
; $1, $2 ... $0 sind einfach Variablen, der Witz ist, das sie hier definiert
; werden, aber für jedes Projekt und jedes Programm einzeln
; übersteuert werden können.
;
$1=-no-preprocessor
7%$1=-no-preprocessor -elf -no-regnames -no-multiple-ccs
8%$1=-no-preprocessor -amiga-align -poweropen -sc -no-multiple-ccs -use-lmw -peephole
;
; Default's:
;
$2=-O=991 -maxoptpasses=50
$o=T:LinkListe
;
; Für Linker: CPU-Typ wird geprüft
;
$3=vlib:startup.o
7%$3=vlibppc:startup.o
8%$3=vlibwos:warpup.o
;
; Includes, vekürzt $I = Programm-Pfad (Quellen)
; --------- hier müssen die eigenen Standardpfade rein.
;
$4=vlib:vc.lib vlib:amiga.lib vlib:extra.lib
7%$4=-lvc -lamiga -lextra -lpowerup
8%$4=vlibwos:vc.lib vlibwos:m.lib vlibwos:amiga.lib vlibwos:extra.lib vlibwos:x.o
;
; Includes, für DOSLIB vekürzt
;
$5=-Ivinclude: -IInclude: -IProj:Library/Include -IProj:Library/Init -I$I
7%$5=-Ivincludeppc: -IInclude: -IProj:Library/Include -IProj:Library/Init -I$I
8%$5=-Ivincludewos: -IInclude: -IProj:Library/Include -IProj:Library/Init -I$I
;
; Pre-Prozessor
;
P=vcpp $5 -D__STDC__=1 -+ $D $&.c $&.i
7%P=vcpp $5 -D__STDC__=1 -+ $D $&.c $&.i
8%P=vcpp $5 -D__STDC__=1 -D__VBCC__=1 -D__PPC__=1 -+ $D $&.c $&.i
;
; C-Compiler:
;
C=vbccm68k $&.i -o= $&.a -quiet $C $1 $2
7%C=vbccppc $&.i -o= $&.a -quiet $C $1 $2
8%C=vbccppc $&.i -o= $&.a -quiet $C $1 $2
;
; Scheduler
; INAKTIV außer bei WarpOS
;
8%S=vscppc -quiet $&.a $&.s
;
; Assembler
;
A=PhxAss noexe quiet opt 3 M=0 $&.a TO $&.o
2%A=PhxAss noexe quiet opt 3 M=1 $&.a TO $&.o
3%A=PhxAss noexe quiet opt 3 M=2 FPU=1 $&.a TO $&.o
4%A=PhxAss noexe quiet opt 3 M=3 FPU=1 $&.a TO $&.o
5%A=PhxAss noexe quiet opt 3 M=4 $&.a TO $&.o
6%A=PhxAss noexe quiet opt 3 M=6 $&.a TO $&.o
7%A=pasm_wos -R -F1 -O65536 $&.a -o $&.o
8%A=pasm_wos -F2 -O65536 $&.s -o $&.o
;
; Linker (PhxLnk: @ übergibt eine Datei in der alle .o-Files gelistet sind!)
; (GNU-ld: < dito, aber über Standard-Input)
; (vlink: -F für File)
;
; Beim Start des Linker's mit Optionen, Link-Lib's und Objekten geht ziemlich
; schnell der Platz aus. Vor allem, wenn noch Pfadangaben hinzukommen. Das Tool
; vc vom vbcc unterscheidet wann eine Datei und wann eine Liste übergeben wird.
; Ich habe mich nur gefragt, wieso eigentlich? Wenn ich gleich die Datei ver-
; wende habe ich es einheitlich und es funktioniert in jedem Fall, ob ein, 10
; oder 100 Objekte. Alle Linker haben die Funktion ohnehin, also habe ich auf
; die ÜÜbergabe als Parameterliste verzichtet und übergebe immer die Datei.
; Der Dateiname ist per $o definiert.
;
L=vlink -s -sc -sd -x -dn $3 -F$o $L $4 -o $$
7%L=vlink -nostdlib -belf32powerup -s -sc -sd -Lvlibppc: -F$o $4 $3 $L -o $$
8%L=vlink -bamigaehf -s -sc -sd -x -nostdlib -Lvlibwos: $3 -F$o $L $4 -o $$
;
; CLI-Kommandos ausführen, wenn
;
; X0-X9 VOR dem ersten Compilerkommando (P, C, S, A) für Versionspflege
; oder Sicherungen.
;
; Y0-Y9 NACH dem Link (wenn erfolgreich), z.B. für Arbeitskopien, Update-
; systeme etc.
;
; R#: Programm starten, Cleanup oder alles andere was passieren soll.
; Wird eine Compilerstufe nicht eingesetzt entfallen auch die R-Zeilen!
;
; R0: VOR P - nur wenn auch P ausgeführt wird
; R1: NACH P - nur wenn auch P ausgeführt wird und ein Output-File vorliegt
; R2: VOR C - nur wenn auch C ausgeführt wird
; R3: NACH C - nur wenn auch C ausgeführt wird und ein Output-File vorliegt
; R4: VOR S - nur wenn auch S ausgeführt wird
; R5: NACH S - nur wenn auch S ausgeführt wird und ein Output-File vorliegt
; R6: VOR A - nur wenn auch A ausgeführt wird
; R7: NACH A - nur wenn auch A ausgeführt wird und ein Output-File vorliegt
; R8: VOR L - nur wenn auch L ausgeführt wird
; R9: NACH L - nur wenn auch L ausgeführt wird und ein Output-File vorliegt
;
; TIP: Wenn die Zeilen nicht reichen: 'Batches' oder 'Arexx' einsetzen!
;
R7=Delete $&.i $&.a
8%R7=Delete $&.i $&.a $&.s
R9=Delete $o
;
; Sicher ist sicher!
;
X0=MakeDir >Nil: obj obj/000 obj/010 obj/020 obj/030 obj/040 obj/060 obj/ppc obj/wos